package com.brainhealth.customer.domain;

import java.util.Date;
import java.util.List;

import com.brainhealth.common.enums.CustomerExerciseStatus;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.brainhealth.common.annotation.Excel;
import com.brainhealth.common.core.domain.BaseEntity;

/**
 * 会员训练记录对象 customer_exercise
 * 
 * @author wolong
 * @date 2023-05-09
 */
public class CustomerExercise extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**
     * 会员训练记录主键
     */
    private Long customerExerciseId;

    /**
     * 关联会员表主键
     */
    @Excel(name = "关联会员表主键")
    private Long customerId;
    /**
     * 训练订单ID
     */
    private String orderId;

    /**
     * 关联训练项表主键
     */
    @Excel(name = "关联训练项表主键")
    private Long exerciseId;

    /**
     * 训练项名称
     */
    @Excel(name = "训练项名称")
    private String exerciseName;

    /**
     * 主训练内容类型
     */
    private Long exerciseType;


    /**
     * 训练结果分数
     */
    @Excel(name = "训练结果分数")
    private Long resultValue;

    /**
     * 训练次数排序
     */
    @Excel(name = "训练次数排序")
    private Long countSort;

    /**
     * 训练次数排序列表
     */
    private List<Long> countSortList;

    /**
     * 训练时长单位秒
     */
    @Excel(name = "训练时长单位秒")
    private Long exerciseTime;

    /**
     * 训练开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "训练开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 训练结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "训练结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 训练内容开启时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "训练内容开启时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date openTime;

    /**
     * 训练项状态枚举(0未开启 1未完成  2已完成 3已过期 4本次)
     */
    @Excel(name = "训练项状态枚举(0未开启 1未完成  2已完成 3已过期 4本次)")
    private CustomerExerciseStatus status;

    /**
     * 状态枚举值
     */
    private Long statusValue;

    /**
     * 执行力
     */
    @Excel(name = "执行力")
    private Long execute;

    /**
     * 注意力
     */
    @Excel(name = "注意力")
    private Long attention;

    /**
     * 记忆力
     */
    @Excel(name = "记忆力")
    private Long memory;

    /**
     * 逻辑推理
     */
    @Excel(name = "逻辑推理")
    private Long logic;

    public Long getExerciseType()
    {
        return exerciseType;
    }

    public void setExerciseType(Long exerciseType)
    {
        this.exerciseType = exerciseType;
    }

    public Long getStatusValue()
    {
        return statusValue;
    }

    public void setStatusValue(Long statusValue)
    {
        this.statusValue = statusValue;
    }

    public String getOrderId()
    {
        return orderId;
    }

    public void setOrderId(String orderId)
    {
        this.orderId = orderId;
    }

    public void setCustomerExerciseId(Long customerExerciseId)
    {
        this.customerExerciseId = customerExerciseId;
    }

    public Long getCustomerExerciseId()
    {
        return customerExerciseId;
    }

    public void setCustomerId(Long customerId)
    {
        this.customerId = customerId;
    }

    public Long getCustomerId()
    {
        return customerId;
    }

    public void setExerciseId(Long exerciseId)
    {
        this.exerciseId = exerciseId;
    }

    public Long getExerciseId()
    {
        return exerciseId;
    }

    public void setExerciseName(String exerciseName)
    {
        this.exerciseName = exerciseName;
    }

    public String getExerciseName()
    {
        return exerciseName;
    }

    public void setResultValue(Long resultValue)
    {
        this.resultValue = resultValue;
    }

    public Long getResultValue()
    {
        return resultValue;
    }

    public void setCountSort(Long countSort)
    {
        this.countSort = countSort;
    }

    public Long getCountSort()
    {
        return countSort;
    }

    public List<Long> getCountSortList() {
        return countSortList;
    }

    public void setCountSortList(List<Long> countSortList) {
        this.countSortList = countSortList;
    }

    public void setExerciseTime(Long exerciseTime)
    {
        this.exerciseTime = exerciseTime;
    }

    public Long getExerciseTime()
    {
        return exerciseTime;
    }

    public void setStartTime(Date startTime)
    {
        this.startTime = startTime;
    }

    public Date getOpenTime()
    {
        return openTime;
    }

    public void setOpenTime(Date openTime)
    {
        this.openTime = openTime;
    }

    public Date getStartTime()
    {
        return startTime;
    }

    public void setEndTime(Date endTime)
    {
        this.endTime = endTime;
    }

    public Date getEndTime()
    {
        return endTime;
    }

    public CustomerExerciseStatus getStatus()
    {
        return status;
    }

    public void setStatus(CustomerExerciseStatus status)
    {
        this.status = status;
    }

    public void setExecute(Long execute)
    {
        this.execute = execute;
    }

    public Long getExecute()
    {
        return execute;
    }

    public void setAttention(Long attention)
    {
        this.attention = attention;
    }

    public Long getAttention()
    {
        return attention;
    }

    public void setMemory(Long memory)
    {
        this.memory = memory;
    }

    public Long getMemory()
    {
        return memory;
    }

    public void setLogic(Long logic)
    {
        this.logic = logic;
    }

    public Long getLogic()
    {
        return logic;
    }

    @Override
    public String toString()
    {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("customerExerciseId", getCustomerExerciseId())
                .append("customerId", getCustomerId())
                .append("exerciseId", getExerciseId())
                .append("exerciseName", getExerciseName())
                .append("resultValue", getResultValue())
                .append("countSort", getCountSort())
                .append("countSortList", getCountSortList())
                .append("exerciseTime", getExerciseTime())
                .append("startTime", getStartTime())
                .append("endTime", getEndTime())
                .append("openTime", getOpenTime())
                .append("status", getStatus())
                .append("execute", getExecute())
                .append("attention", getAttention())
                .append("memory", getMemory())
                .append("logic", getLogic())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
